from django.shortcuts import render
from django.http import HttpResponse
import re

class AdminLoginMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
        # One-time configuration and initialization.

    def __call__(self, request):

        #总体目标:检测当前的请求是否已经登录,如果登录则方行 ,如果未登录跳转大登录页

        #需要避开的路由 包括登录页 登录执行页 验证码页
        urllist=['/myadmin/user_log/','/myadmin/user_log_check/','/myadmin/verifycode/']
        #print(request.path)
        #判断是否是要访问后台页面(不包含登录) 如果是 则进行 判断session
        if re.match('/myadmin/',request.path) and request.path not in urllist:

            #session是否存在 判断是否有值 如果没有默认为空
            if request.session.get('user', '') == '':
                #print(request.path,'111111')
                return HttpResponse('<script>alert("请先登录");location.href="/myadmin/user_log";</script>')

        #如果存在 则允许访问
        response = self.get_response(request)
        return response